

#include "stdafx.h"
#include "FakeExport.h"
#include "Plugin.h"

char g_PluginsInfo[600*127] = {0};

void PatchOdPlugin_Num(DWORD odBase)
{
	memset(&g_PluginsInfo, 0, sizeof(g_PluginsInfo));
	BYTE PluginNum = 127;
	WriteMemory((PBYTE)(odBase + 0x970A6), (PBYTE)&PluginNum, 1);
	WriteMemory((PBYTE)(odBase + 0x971D5), (PBYTE)&PluginNum, 1);
	

	DWORD Addr = (DWORD)&g_PluginsInfo;
	WriteMemory((PBYTE)(odBase + 0x9650A), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x965A3), (PBYTE)&Addr, 4);

	WriteMemory((PBYTE)(odBase + 0x96676), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x968B0), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96B58), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96B8F), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96C0C), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96C4D), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96C7A), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96CBF), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96D33), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96DEB), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96E43), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96EBF), (PBYTE)&Addr, 4);

	WriteMemory((PBYTE)(odBase + 0x97027), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x970D6), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x97176), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x97212), (PBYTE)&Addr, 4);

	Addr = (DWORD)&g_PluginsInfo + 0x238;
	WriteMemory((PBYTE)(odBase + 0x96621), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x96645), (PBYTE)&Addr, 4);

	Addr = (DWORD)&g_PluginsInfo + 0x108;
	WriteMemory((PBYTE)(odBase + 0x97047), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x970F6), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x97196), (PBYTE)&Addr, 4);
	WriteMemory((PBYTE)(odBase + 0x97232), (PBYTE)&Addr, 4);
	Addr = (DWORD)&g_PluginsInfo + 0x4396;
	WriteMemory((PBYTE)(odBase + 0xC6946), (PBYTE)&Addr, 4);
}
